#ifndef __INC_LEDSHOW_H
#define __INC_LEDSHOW_H
#include <Arduino.h>
#include <FastLED.h>
#include "Config.h"
// #include "LedController.h"

// LED控制器
class LedShow
{
private:
public:
    //设置
    virtual void ShowSetup(LedState _ledState);
    //循环显示
    virtual void LoopShow();
};

class LedShow_ColorPalette : public LedShow
{
private:
    CRGB leds[NUM_LEDS];
    CRGBPalette16 currentPalette;
    TBlendType currentBlending;

    void FillLEDsFromPaletteColors(uint8_t colorIndex);
    void ChangePalettePeriodically();
    void SetupTotallyRandomPalette();
    void SetupBlackAndWhiteStripedPalette();
    void SetupPurpleAndGreenPalette();

public:
    //设置
    void ShowSetup(LedState _ledState);
    //循环显示
    void LoopShow();
};

class LedShow_ColorTemperature : public LedShow
{
private:
    CRGB leds[NUM_LEDS];

public:
    //设置
    void ShowSetup(LedState _ledState);
    //循环显示
    void LoopShow();
};
class LedShow_Cylon : public LedShow
{
private:
    CRGB leds[NUM_LEDS];
    void fadeall();
public:
    //设置
    void ShowSetup(LedState _ledState);
    //循环显示
    void LoopShow();
};



#endif